Often there is a need to create tight time synchronization between two or more nodes in a network (e.g., networks with radios, fiber optics, IR, and/or other communication channels). Developing tight time synchronization with low jitter between these nodes can be critical and difficult to achieve. Examples where tight time synchronization with low jitter is needed includes, but is not limited to, entertainment devices such as video games consoles, display systems and controllers; industrial processes control equipment; and wireless power charging systems. Some systems, such as the link between video game controllers and consoles, require low latency. Other instances require very low jitter, i.e., a low deviation from a reference clock signal. For example, synchronizing the execution of the playing of video and audio in a wireless video game system where the audio playing device and video device are remote from the console often requires very low jitter. As video games systems typically run in a 30 or 60 Hz loop, the gaming systems need to keep these loops tightly synchronized to maintain coherence of the game play experience.
Current low power radio nodes have adopted multiple CPUs to ease software development requirements and increase total through put. For example, the Texas Instruments CC2650 or the Nordic nRF52 families of low power radios have multiple CPUs that are loosely coupled in the same chip. At the lowest level, closest to the RF components is a very simple sequencer, above the sequencer is typically a simple CPU that in the case of the CC2650 is an ARM M0 that handles the lowest level of the radio protocol. Above the ARM M0 often sits an ARM M3 that handles the higher level of the radio protocol and often a higher-level application program. In more complex systems, there is often an external dedicated application processor that handles the application program. All of these CPUs run asynchronously resulting in the potential for considerable jitter to stack-up. This stack-up occurs because events must pass up the processor stack before a message can be acted on. This can result in a loose temporal coupling when an application processor on one systems sends a message to another application processor on a different system.
Accordingly, a need exists for technology that overcomes the problem demonstrated above, as well as one that provides additional benefits. The examples provided herein of some prior or related systems and their associated limitations are intended to be illustrative and not exclusive. Other limitations of existing or prior systems will become apparent to those of skill in the art upon reading the following Detailed Description.